Windows Presentation Foundation

Geometrie

Geometrie ve WPF slouží stejně jako v matematice k popisu objektů. Na rozdíl od tříd odvozených od třídy Shape je nelze nakreslit bez pomocného elementu. Elementy geometrie nedisponují atributy Stroke, StrokeThickness nebo Fill. Tyto atributy se nastavují přes pomocný element.

Diagram tříd pro geometrie ve WPF
Obrázek 4 Diagram tříd pro geometrie ve WPF [zdroj: vlastní]

Na Obrázku 4 je zobrazen element Path. Tento element slouží pro zobrazování geometrií. Nastavuje pro všechny zobrazované elementy (geometrie) atributy: Stroke, StrokeThickness nebo Fill. Atribut Data slouží pro nastavení zobrazované geometrie. Na obrázku 4 je také zobrazena třída Geometry. Od ní jsou odvozeny další třídy geometrie. LineGeometry, EllipseGeometry a RectangleGeometry vytvoří základní grafické tvary. PathGeometry slouží k vytvoření skupiny čar složených z různých segmentů (částí). Geometrie CombinedGeometry dovoluje aplikovat na geometrie operace jako je sjednocení nebo třeba odečtení. GeometryGroup dovoluje sjednotit více geometrií v atributu Data.

Geometrie základních grafických tvarů mají rozdílné atributy oproti těm odvozených od třídy Shape. Na Obrázku 5 jsou zobrazeny některé z elementů geometrií a jejich atributů.

Ukázky geometrií a jejich atributů
Obrázek 5 Ukázky geometrií a jejich atributů [zdroj: vlastní]
RectangleGeometry
<Path Stroke="Black" StrokeThickness="3" Fill="LightGray">
     <Path.Data>
         <ectangleGeometry Rect="60,60,150,150"/>
     </Path.Data>
</Path>
Path – zobrazí geometrie
Path.Data – nastavení zobrazované geometrie
Rect – definice obdélníku (x,y,width,height)
Ukázkové řešení: 2D Grafika/ZakladniTvaryGeometry

PathGeometry

Pomocí PathGeometry je možné vytvořit skupinu čar složených ze segmentů. Každý segment může tvořit například úsečka, oblouk nebo Bézierova křivka. Čáry jsou definovány pomocí třídy PathFigure. Na Obrázku 6 je diagram třídy PathGeometry. Tato třída má atribut Figures pro vytvoření jednotlivých čar (PathFigure). Atribut Segmets je kolekcí jednotlivých částí tvořících čáru PathFigure. StartPoint udává počáteční bod celé čáry.

Diagram třídy pro PathGeometry
Obrázek 6 Diagram třídy pro PathGeometry [zdroj: vlastní]
PathGeometry
<PathGeometry>
    <PathFigure StartPoint="10,10">
        <LineSegment Point="200,30"/>
        <ArcSegment Point="180,100" Size="60,50"/>
    </PathFigure>

    <PathFigure StartPoint="20,100">
        <BezierSegment Point1="150,130" Point2="10,200" Point3="230,150"/>
    </PathFigure>
</PathGeometry>
PathGeometry – aplikuje operaci na dva objekty
PathFigure – vytváří čáru složenou ze segmentů
StartPoint – počátek čáry vytvořené pomocí PathFigure
LineSegment – segment úsečky
ArcSegment – segment oblouku
BezierSegment – segment kubické Bézierovy křivky

Koncový bod segmentu je počátečním bodem následujícího segmentu.
Ukázkové řešení: 2D Grafika/KubickaBezierovaKrivka ; 2D Grafika/Oblouk ; 2D Grafika/PathGeometry